If Lower$(I$)="v" Then Locate 18,0 : Paper 0 : Pen 15 : Print "v",VER$
'
If(X Mouse<>X or Y Mouse<>Y) and MM=1 Then MM=0 : OZ=Z : Gosub 400
If MM=0 Then Z=Mouse Zone : MK=Mouse Key
If MM=0 Then Bob 20,X Screen(X Mouse),Y Screen(Y Mouse),1 : Else Bob Off 20
'
If MM=1 Then Gosub 410
If I$=" " and MM=0 Then Z=0 : MM=1 : Bob Off 20 : X=X Mouse : Y=Y Mouse
If I$=" " and MM=1 Then OZ=Z : Inc Z : Gosub 400
Rem - Screen Swap
Wait Vbl
If MM=0 and Z>0 and MK>0 Then 300
If MM=1 and Z>0 and SC=68 Then 300
Goto 200
'
300 Rem --- Selected ---
POS=Z-1
Sam Swapped : Erase 14 : Erase 15
Goto 500
400 Rem ---- Update box ----
X=X Mouse : Y=Y Mouse
Ink 14 : If OZ<>3 and OZ>0 Then Box X(OZ),Y(OZ) To X(OZ)+82,Y(OZ)+50
If OZ=3 Then Polyline 228,33 To 224,33 To 224,83 To 306,83 To 306,53
Wait Vbl
If MM=0 Then Return
If Z=7 Then Z=1
410 Rem - Flash -
CO=CO+1 : If CO=16 Then CO=1
Ink CO
If Z<>3 Then Box X(Z),Y(Z) To X(Z)+82,Y(Z)+50 : Else Polyline 228,33 To 224,33 To 224,83 To 306,83 To 306,53
Return
500 Rem --- Ok, load the selected program ---
POS=Z
Sam Swapped
Erase 14
Erase 15
Fade 1 : Wait 15 : Hide On : Autoback 0 : Update Off : Auto View Off : Wait Vbl
F$="intro/"+Chr$(48+POS)+".abk"
Screen Open 6,320,200,16,Lowres
Load F$,5 : Unpack 5 To 6
Screen 6 : Auto View On : View : Wait Vbl
Fade 2 To 6
On Error Goto 540
520 If Exist(F$(Z)) Then Run F$(Z)
For DRV=0 To 3
If Exist("df"+Str$(DRV)+":"+F$(Z)) Then Dir$="df"+Str$(DRV)+":" : Run F$(Z)
Next DRV
540 Rem - Wow, an error has occurred -
Inc ER : If ER>3 Then Goto 1
Wait 10
Paste Bob 72,174,54
Clear Key
Wait Key
Ink 0 : Bar 64,174 To 256,196
Goto 520
570 Rem --- Zone data -
580 Data 16,33
582 Data 120,33
584 Data 224,33
586 Data 16,103
588 Data 120,103
592 Data 224,103
600 Rem --- Filename data -
610 Data "library.AMOS"
620 Data "basketball.AMOS"
630 Data "shopkeeper.AMOS"
640 Data "log cabin.AMOS"
650 Data "opposites.AMOS"
660 Data "typing.AMOS"
1000 Rem --- Intro ---
1005 Ink 7 : Bar 0,28 To 319,178
1006 Paste Bob 33,189,22
1008 Limit Bob 0,0 To 320,200
Bob Off : Double Buffer : Autoback 2 : Bob Update Off
Rem - Waves -
1010 For X=0 To 4 : Bob 5-X,X*64,18,2 : Move Y 11+X,"(4,1,1)(3,2,2)(4,1,1)(2,0,1)(4,-1,1)(3,-2,2)(4,-1,1)(2,0,1)l" : Move On 11+X : Wait 4 : Next X
Anim 11,"(2,6)(3,6)(4,6)(5,6)l"
Anim 12,"(3,6)(4,6)(5,6)(2,6)l"
Anim 13,"(4,6)(5,6)(2,6)(3,6)l"
Anim 14,"(5,6)(2,6)(3,6)(4,6)l"
Anim 15,"(2,6)(3,6)(4,6)(5,6)l"
Rem - Snail and Plug -
1022 Bob 14,96,164,10 : Bob 13,32,180,21
1025 Rem - Fish -
1030 Bob 12,360,90,27 : Move X 4,"(1,-1,120)(10,0,1)(1,2,60)" : Anim 4,"(27,120)(28,10)(26,1)"
1032 Move Y 4,"(3,-2,1)(3,-1,1)(3,0,1)(3,1,1)(3,2,1)(3,1,1)(3,0,1)(3,-1,1)L"
1035 Bob 11,-32,50,25 : Move Y 5,"(4,-2,1)(4,-1,1)(4,0,1)(4,1,1)(4,2,1)(4,1,1)(4,0,1)(4,-1,1)L" : Move X 5,"(1,1,100)(10,0,1)(1,-2,50)" : Anim 5,"(25,100)(26,10)(28,1)"
1038 Rem - Frog and Goggles -
1040 Bob 6,160,-300,30
Move Y 10,"(1,4,79)(1,2,62)(1,-1,2)(2,-1,2)(2,0,1)(2,1,2)(1,1,2)(1,-1,2)(2,0,1)(1,1,2)(1,-1,1)(1,0,1)(1,1,1)"
Anim 10,"(30,79)(31,60)(32,1)"
1043 Bob 15,188,-300,9 : Move Y 1,"(1,4,79)(2,2,82)"
Move X 1,"(79,0,1)(2,2,12)(2,0,1)(2,-1,10)(2,0,1)(2,2,12)(2,0,1)(2,-1,10)(2,0,1)(2,2,12)(2,0,1)(2,-1,10)(2,0,1)(2,2,10)"
Move Y 10,"(1,-4,2)(1,-2,2)(1,-1,2)(2,0,1)(1,1,1)(1,2,2)(1,4,2)(10,-1,1)(4,1,1)(6,-1,1)(4,1,1)(8,-1,1)(4,1,1)(6,-1,1)(30,0,1)(1,14,1)"
Move X 10,"(1,4,16)(1,2,6)(1,1,4)(2,0,1)(1,-1,12)(1,-2,41)"
1311 Bob 13,36,154,9 : Move X 3,"(1,-1,34)" : Move Y 3,"(1,-4,6)(1,-2,4)(1,-1,2)(2,0,1)(1,1,2)(1,2,4)(1,4,12)"
Anim 3,"(21,1)" : Wait Vbl : Anim On 10 : Anim On 3
1312 Move On
Y=0 : Bob Update Off : Autoback 0
While Y<168
Y=Y Bob(5) : Bob Clear : Screen Copy 1,0,Y-20,320,Y+10 To Logic,0,Y-20 : Bob Draw : Screen Swap : Wait Vbl
Wend
1320 Autoback 2 : Bob Update On : Update
1345 Return
Rem --- bob bubbles ---
1600 For BUB=0 To 3
1612 If Movon(BUB+6)=0 Then Bob Off 10-BUB
1618 If Y Bob(6)>34+YB(BUB) and AB(BUB)=0 Then Bob 10-BUB,X Bob(6)+Rnd(8)+32,Y Bob(6)+8,9
On Error Goto 60000
If Y Bob(6)>34+YB(BUB) and AB(BUB)=0 Then Move Y BUB+6,"(2,-1,"+Str$(Y Bob(10-BUB)-24)+")"
If Y Bob(6)>34+YB(BUB) and AB(BUB)=0 Then Anim BUB+6,"("+Str$(6+Rnd(2))+","+Str$((Y Bob(BUB+6)-24)*2)+")(9,1)" : Move On BUB+6 : Anim On BUB+6 : AB(BUB)=1
If AB(2)=1 and AX=0 Then AB(0)=0 : YB(0)=YB(2)+12 : AX=1